<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="zh-CN" />
<script type="text/javascript" src="../jct.js"></script>
<title>jCT Example,ExtendTo</title>
<style>
textarea{
overflow-x:scroll;
overflow-y:scroll;
}
</style>
</head>
<body>
<script type="text/javascript">
var jct={
	ERun:function(){
		document.getElementById('view').innerHTML=this.GetView();
	}
}
function go(){
	document.getElementById('src').value+=go.toString();
	new jCT(document.getElementById('template').value).Build();
}
</script>
<p>在模板中嵌入RunNow,BRun中执行ExtendTo.对外部对象jct进行扩展<br>
而外部对象又定义了ERun,控制输出的目的,注意这里的两个RunNow的执行顺序<br>先执行嵌入的BRun<br>后执行扩展的ERun<br>
因为ExtendTo已经对外部的对象进行了扩展,所以没有必要在保留实例对象的变量名,所有的实例成员都扩展到了目标对象上(有点附身的味道)<br>
下面是div id=view 用来表现模板执行后的结果<button onclick="go();">执行</button></p>
<div id="view"></div>
<hr style="clear:both;" />
<p>下面是javascript脚本,这个例子中下面的函数仅仅负责jCT实例的Build,此函数在body onload中被调用</p>
<textarea id="src" style="width:100%;height:250px;">
/*下面是jct对象的源码,此对象就是this.ExtendTo(jct)中的jct,这个对象中定义了RunNow,所以会在ExtendTo的时候用*/
var jct={
	ERun:function(){
		document.getElementById('view').innerHTML=this.GetView();
	}
}

</textarea>
<p>下面是模板源码,通过在模板中定义RunNow,在jCT实例的Build过程中自动调用RunNow方法,这里RunNow负责对this进行扩展</p>
<textarea id="template" style="width:100%;height:200px;">
	<ul>
	<!---//.BRun function(){
		this.ExtendTo(jct);
		}
	-->
	<!---for(var i=65;i<=90;i++){-->
	<li style="float:left;list-style-type:none;" id="id+-i-+">
		<span style="margin:4px;">+-String.fromCharCode(i)-+</span>
	</li>
	<!---}-->
	</ul>
</textarea>
</body>
</html>